#include <bits/stdc++.h>
#include <chrono>
using namespace std;
using namespace std::chrono;
#define fopen \
freopen("E:/vscode/oi/in.txt", "r", stdin); \
freopen("E:/vscode/oi/out.txt", "w", stdout);
#define fc \
fclose(stdin); \
fclose(stdout);
#define ios \
ios::sync_with_stdio(0); \
cin.tie(0);
#define i64 long long
#define pii pair<int, int>
#define pdd pair<double, double>
#define ld long double
#define ls(x) (x << 1)
#define rs(x) (x << 1 | 1)
#define lowbit(x) (x & -x)
#define de(x) cout << #x << " = " << x << '\n'
#define MAXP 20
#define int i64
const int N = 1e3 + 10, M = 4e5 + 10, mod = 1e6;
const double eps = 1e-12, base = 0.5;
const double PI = acos(-1);
char s[N], ans, res;
int wa[N];
random_device rd;
mt19937 rnd(rd());
char check()
{
cout << res << '\n';
cout.flush();
char c;
cin >> c;
return c;
}
void solve()
{
int n, m;
cin >> n >> m;
int tot = 0, delta = 0;
while (m--)
{
cin >> s + 1;
double c0, c1;
c0 = c1 = 0;
for (int i = 1; i <= n; i++)
if (s[i] == '0')
c0 += powl(base, wa[i] - delta);
else
c1 += powl(base, wa[i] - delta);
double p = rnd() % mod / 1.0 / mod;
// de(p);
if (p <= c0 / (c0 + c1))
res = '0';
else
res = '1';
ans = check();
delta = mod;
for (int i = 1; i <= n; i++)
wa[i] += (s[i] != ans), delta = min(delta, wa[i]);
tot += (res != ans);
}
// de(tot);
}
signed main()
{
// ios;
// fopen;
auto st_time = high_resolution_clock::now();
int t = 1;
srand(time(0));
// cin >> t;
for (int i = 1; i <= t; i++)
{
solve();
}
// 获取当前时间点
auto ed_time = high_resolution_clock::now();
// 计算运行时间(毫秒为单位)
auto duration = duration_cast<milliseconds>(ed_time - st_time);
// 打印运行时间
// cout << "运行时间:" << duration.count() << " 毫秒" << '\n';
return 0;
}
617. Merge Two Binary Trees | 1450. Number of Students Doing Homework at a Given Time |
700. Search in a Binary Search Tree | 590. N-ary Tree Postorder Traversal |
589. N-ary Tree Preorder Traversal | 1299. Replace Elements with Greatest Element on Right Side |
1768. Merge Strings Alternately | 561. Array Partition I |
1374. Generate a String With Characters That Have Odd Counts | 1822. Sign of the Product of an Array |
1464. Maximum Product of Two Elements in an Array | 1323. Maximum 69 Number |
832. Flipping an Image | 1295. Find Numbers with Even Number of Digits |
1704. Determine if String Halves Are Alike | 1732. Find the Highest Altitude |
709. To Lower Case | 1688. Count of Matches in Tournament |
1684. Count the Number of Consistent Strings | 1588. Sum of All Odd Length Subarrays |
1662. Check If Two String Arrays are Equivalent | 1832. Check if the Sentence Is Pangram |
1678. Goal Parser Interpretation | 1389. Create Target Array in the Given Order |
1313. Decompress Run-Length Encoded List | 1281. Subtract the Product and Sum of Digits of an Integer |
1342. Number of Steps to Reduce a Number to Zero | 1528. Shuffle String |
1365. How Many Numbers Are Smaller Than the Current Number | 771. Jewels and Stones |